工控網(wǎng)首頁
>

應(yīng)用設(shè)計(jì)

>

基于VC++.NET 的串行通信的機(jī)器人控制系統(tǒng)設(shè)計(jì)

基于VC++.NET 的串行通信的機(jī)器人控制系統(tǒng)設(shè)計(jì)

2014/2/18 10:24:53
1.前言(Introdution)  

隨著當(dāng)今科技的不斷發(fā)展,機(jī)器人應(yīng)用領(lǐng)域的不斷擴(kuò)展,人們對機(jī)器人的控制越來越想方便、快捷?;赑C 的機(jī)器人控制系統(tǒng)極大的促進(jìn)了機(jī)器人的遙操作技術(shù)?;赩C++.NET的機(jī)器人控制平臺的設(shè)計(jì),提高了系統(tǒng)的人機(jī)交互性和可擴(kuò)展性。  

本文將 PC 機(jī)與單片機(jī)結(jié)合,綜合應(yīng)用了兩者的優(yōu)勢,互補(bǔ)了彼此的缺陷,設(shè)計(jì)了一套機(jī)器人控制系統(tǒng)。上位機(jī)(PC 機(jī))主要采用VC++.NET 設(shè)計(jì)了可視化的機(jī)器人控制平臺,簡潔明了,控制快捷;下位機(jī)(單片機(jī)控制系統(tǒng))主要采用PIC 單片機(jī)和PSC(Parallax ServoController)電機(jī)控制器,采用模塊化遞階控制技術(shù)融合傳感器技術(shù),運(yùn)用匯編語言,通過鍵盤控制,完成了機(jī)器人的各種行走功能,同時(shí)還通過液晶顯示芯片1602 來顯示機(jī)器人當(dāng)前的工作狀態(tài);本研究采用的試驗(yàn)移動(dòng)機(jī)器人是德普施科技有限公司的DRROB 系列高級機(jī)器人產(chǎn)品——六足機(jī)器人。  

2.系統(tǒng)硬件設(shè)計(jì)(The design of system hardware)  

2.1 系統(tǒng)硬件的總體設(shè)計(jì):  

基于前言部分所描述機(jī)器人控制系統(tǒng)功能,初步分析該系統(tǒng)由以下幾個(gè)模塊組成:單片機(jī)最小系統(tǒng)模塊(PIC 單片機(jī)為核心,擴(kuò)展了一片EEPROM 芯片24LC16B),串行通信模塊,直流伺服電機(jī)驅(qū)動(dòng)模塊,鍵盤控制模塊,液晶顯示模塊及傳感器檢測模塊等。列出部分主要模塊電路圖。其控制系統(tǒng)總體框圖如圖1 所示。  



圖1 控制系統(tǒng)總體結(jié)構(gòu)  

2.2 通信電路模塊:  

采用 MAX232 實(shí)現(xiàn)電平轉(zhuǎn)換,其連接采用簡單的零調(diào)制三線經(jīng)濟(jì)型。其電路如圖2 所示。  



圖2 通信電路  

2.3 電機(jī)驅(qū)動(dòng)電路模塊:  

采用 PSC 電機(jī)控制器作為電機(jī)驅(qū)動(dòng)模塊的硬件基礎(chǔ),此控制器采用數(shù)據(jù)分配器芯片一個(gè)、信號接收端口一個(gè)、復(fù)位按鈕一個(gè)、單刀雙擲開關(guān)一個(gè),+5V 伺服電源入口一個(gè)。PSC電機(jī)控制器是一個(gè)1/16 線的數(shù)據(jù)分配器,通過串口通信將接收來的控制信息分成16 路,經(jīng)譯碼后可發(fā)送給16 個(gè)電機(jī)驅(qū)動(dòng)器芯片,在這里我們使用其中12 個(gè)端口。六足機(jī)器人的基本動(dòng)作是由12 個(gè)直流伺服電機(jī)協(xié)同動(dòng)作完成,伺服電機(jī)采用減速裝置,旋轉(zhuǎn)電位計(jì)和H 橋?qū)崿F(xiàn)精確的位置半閉環(huán)控制。Serial(信息接收端口)與PIC 微控制器的P15 端口相連,接受控制信號。其電路如圖3 所示。  



圖 3 電機(jī)驅(qū)動(dòng)模塊  

2.4 機(jī)器人紅外避障模塊:  

采用了一個(gè)簡單但應(yīng)用普遍的電路。在該電路中采用了常用的紅外發(fā)射管D1 和接收管Q1,通過改變電阻R1 可以調(diào)節(jié)發(fā)射管的功率,通過測量D1 的電壓可以計(jì)算出機(jī)器人距離目標(biāo)或者障礙物的距離。其電路圖略。  

2.5 液晶顯示模塊:  

采用 1602 液晶顯示模塊,該模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了160 個(gè)不同的點(diǎn)陣字符圖形,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫、常用的符號、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,它的讀寫操作、屏幕和光標(biāo)的操作都是通過指令編程來實(shí)現(xiàn)的。此模塊的作用是可以顯示當(dāng)前的狀態(tài),實(shí)現(xiàn)機(jī)器人的人機(jī)交互顯示功能。其電路略。  

3.系統(tǒng)軟件設(shè)計(jì)(The design of system software)  

該系統(tǒng)的軟件設(shè)計(jì)分為兩個(gè)部分:上位機(jī)軟件和下位機(jī)軟件。上位機(jī)采用高級語言VC++.NET 來實(shí)現(xiàn),而下位機(jī)采用匯編語言來實(shí)現(xiàn)。  

3.1 上位機(jī)軟件實(shí)現(xiàn)  

在 WINDOWS 環(huán)境下,用戶不能直接對PC 的串行端口進(jìn)行操作。Visual C++.NET 中,通過使用微軟公司提供的Microsoft Comm Control 控件(簡稱MSComm),可以方便地實(shí)現(xiàn)PC 與外部設(shè)備之間的串行通信,編程工作量相對較少。串行通信控件MSComm 有二種處理通信的工作方式:事件驅(qū)動(dòng)方式和查詢工作方式。事件驅(qū)動(dòng)方式是指:當(dāng)串行端口接收或發(fā)送完指定數(shù)量數(shù)據(jù)以及發(fā)生通信錯(cuò)誤等情況時(shí),MSComm 控件觸發(fā)OnComm 事件,作出相應(yīng)處理。查詢工作方式是指:通過查詢控件的某些屬性值(如InBufferCount 屬性)來作出進(jìn)一步的處理。本設(shè)計(jì)實(shí)現(xiàn)采用事件驅(qū)動(dòng)方式來發(fā)送接收數(shù)據(jù)。上位機(jī)程序主要包括初始化程序,控制代碼發(fā)送程序,機(jī)器人各種動(dòng)作控制程序等。(代碼略)  

3.2 下位機(jī)軟件實(shí)現(xiàn)  

下位機(jī)程序主要由:主程序,機(jī)器人各動(dòng)作的子程序,數(shù)據(jù)(控制字)傳送子程序,來自上位機(jī)的信號接受程序,延時(shí)程序等。其中最重要的就是機(jī)器人的各動(dòng)作子程序(六足機(jī)器人涉及到12 個(gè)電機(jī)):使用PIC 單片機(jī)的擴(kuò)展芯片EEPROM 數(shù)據(jù)存儲區(qū)存儲機(jī)器人每個(gè)動(dòng)作對應(yīng)的各電機(jī)的輸入脈沖寬,建立一個(gè)數(shù)據(jù)指針ptrEEPROM,采用查表方式讀取,然后通過串行通信寫入PSC 電機(jī)控制器??刂葡到y(tǒng)主程序流程圖如圖4 所示。  


圖 4 系統(tǒng)主程序流程圖  

4.系統(tǒng)試驗(yàn)機(jī)器人樣機(jī)及最終硬件實(shí)物圖(The robot’s sketch map for test and the final systemhardware photo)  

該系統(tǒng)采用的機(jī)器人結(jié)構(gòu):以一曲柄搖桿機(jī)構(gòu)和連桿機(jī)構(gòu)作為腿部和六足,以12 個(gè)直流伺服電機(jī)作為驅(qū)動(dòng)元件。利用德普施科技有限公司的六足機(jī)器人包搭接出的機(jī)器人。機(jī)器人機(jī)構(gòu)示意圖及設(shè)計(jì)最終的下位機(jī)硬件圖如圖5 所示。  


a.六足機(jī)器人機(jī)構(gòu)示意圖 b.系統(tǒng)下位機(jī)的硬件圖  

圖5 機(jī)器人最初和最終狀態(tài)圖  

系統(tǒng)上位機(jī)控制界面如圖6 所示(通過鍵盤發(fā)送相應(yīng)控制狀態(tài)或點(diǎn)擊機(jī)器人動(dòng)作演示中相應(yīng)的動(dòng)作按鈕,使機(jī)器人動(dòng)作,同時(shí)在接受數(shù)據(jù)窗口可以顯示出當(dāng)前機(jī)器人的運(yùn)動(dòng)狀態(tài))。  


圖 6 系統(tǒng)上位機(jī)控制界面  

5.結(jié)論(Conclusion)  

本文完成所有的軟、硬件設(shè)計(jì)并對機(jī)器人樣機(jī)進(jìn)行調(diào)試后,能夠使機(jī)器人很好地完成各種預(yù)設(shè)的動(dòng)作,運(yùn)動(dòng)靈活、可靠。  

由論文工作可得:控制系統(tǒng)的電機(jī)驅(qū)動(dòng)電路采用一片數(shù)據(jù)分配器芯片,提高了控制的精確性;運(yùn)用PIC 單片機(jī)技術(shù),并綜合紅外傳感技術(shù),增強(qiáng)了機(jī)器人研究領(lǐng)域的環(huán)境感知和人機(jī)交互功能;采用新型的VC++.NET 平臺編寫程序,突出了機(jī)器人研究領(lǐng)域的通信技術(shù)功能,相對VC++.6.0 更加提高了控制系統(tǒng)的擴(kuò)展性,同時(shí)也更好地提高了工業(yè)控制的自動(dòng)化水平。有很好的推廣價(jià)值。  

本文作者創(chuàng)新點(diǎn):控制系統(tǒng)的電機(jī)驅(qū)動(dòng)電路采用一片數(shù)據(jù)分配器芯片,提高了控制的精確性;采用新型的VC++.NET 平臺編寫程序,相對VC++.6.0 更加提高了控制系統(tǒng)的擴(kuò)展性,同時(shí)也更好地提高了工業(yè)控制的自動(dòng)化水平。有很好的推廣價(jià)值。
投訴建議

提交

查看更多評論
其他資訊

查看更多

工業(yè)機(jī)器人控制系統(tǒng)的開放體系結(jié)構(gòu)

工業(yè)機(jī)器人離線編程及無碰撞路徑規(guī)劃系統(tǒng)的開發(fā)研究

工業(yè)機(jī)器人手臂結(jié)構(gòu)的有限元分析與研究

工業(yè)機(jī)器人通用控制器研究開發(fā)

工業(yè)機(jī)器人網(wǎng)絡(luò)控制與編程